package service

import (
	"e_mall_server/common"
	"e_mall_server/dao/mysql"
	"e_mall_server/models"
)

/**
 * @Author: zhaobin
 * @Description TODO
 * @Date: 2022-04-26 0:47
 */

// Login 用户登录信息验证
func Login(p *models.ManagerLoginParam) (managerInfo models.ManagerInfo, err error) {
	manager, err := mysql.Login(p)
	if err != nil {
		return
	}
	token, err := common.GenToken(manager.Id, manager.Username)
	if err != nil {
		return
	}
	managerInfo = models.ManagerInfo{
		Uid:      manager.Id,
		Username: manager.Username,
		Token:    token,
	}
	return
}

// GetManagerList 获取管理员列表接口
func GetManagerList() ([]models.Manager, error) {
	return mysql.GetManagerList()
}

// AddManager 添加管理员信息
func AddManager(manager *models.Manager) error {
	// 1.判断管理员是否存在
	if err := mysql.CheckManagerExist(manager.Username); err != nil {
		// 数据库查询出错或者用户名已存在
		return err
	}
	// 2.执行增加管理员
	a := 1
	manager.Status = &a
	return mysql.AddManager(manager)
}

// UpdateManager 修改管理员信息
func UpdateManager(manager *models.Manager) int64 {
	return mysql.UpdateManager(manager)
}

// DeleteManagerById 通过管理员id删除管理员数据
func DeleteManagerById(id int64) int64 {
	return mysql.DeleteManagerById(id)
}

// GetManagerDetailById 通过管理员id获取管理员详细信息
func GetManagerDetailById(id int64) (models.Manager, error) {
	return mysql.GetManagerDetailById(id)
}
